////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017-2018 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS AUTO-GENERATED CODE.  PLEASE DO NOT EDIT (File bug reports against tools).
///
/// Auto-generated by: ParameterParser V1.1.4
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  mf_1_0_0.h
/// @brief Auto-generated Chromatix parameter file
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef MF_1_0_0_H
#define MF_1_0_0_H

#include "parametermodule.h"
#include "parameterfilesymboltable.h"
#include "parametertypes.h"
#include "ispglobalelements.h"

#define MF_1_0_0_NAMESPACE_BEGIN namespace mf_1_0_0 {
#define MF_1_0_0_NAMESPACE_END }

MF_1_0_0_NAMESPACE_BEGIN

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mf10_rgn_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mf10_rgn_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// top
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct topStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// enable_mfsr
        ///
        /// Tuning Level:  must_tune
        /// Description:   Enable Multi-Frame Super-Resolution.
        /// Default Value: 0
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Nearest neighbor interpolation: discrete values allowed.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT enable_mfsr;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// num_of_frames
        ///
        /// Tuning Level:  must_tune
        /// Description:   Number of images to process.
        /// Default Value: 3
        /// Range:         [3, 31]
        /// Bit Depth:     5u
        /// Conversion:    No Conversion needed
        /// Notes:         Linear interpolation.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT num_of_frames;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// pre_filtering_strength_luma
        ///
        /// Tuning Level:  must_tune
        /// Description:   Strength (Q8) of luma pre-filtering. Strength less than 256 weakens spatial noise reduction for the
        ///                anchor frame. Strength 0 means no spatial noise reduction.
        /// Default Value: 256
        /// Range:         [0, 256]
        /// Bit Depth:     9u
        /// Conversion:    No Conversion needed
        /// Notes:         Linear interpolation.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT pre_filtering_strength_luma;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// pre_filtering_strength_chroma
        ///
        /// Tuning Level:  must_tune
        /// Description:   Strength (Q8) of chroma pre-filtering. Strength less than 256 weakens spatial noise reduction for the
        ///                anchor frame. Strength 0 means no spatial noise reduction.
        /// Default Value: 256
        /// Range:         [0, 256]
        /// Bit Depth:     9u
        /// Conversion:    No Conversion needed
        /// Notes:         Linear interpolation.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT pre_filtering_strength_chroma;
    } top;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// anchor_picking
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct anchor_pickingStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mode
        ///
        /// Tuning Level:  must_tune
        /// Description:   0 - Will use the desired image as anchor; process others in increasing temporal difference. 1 - Process
        ///                images in order of decreasing sharpness (focus value). 2 - Process images with similar lighting first.
        /// Default Value: 2
        /// Range:         [0, 2]
        /// Bit Depth:     2u
        /// Conversion:    No Conversion needed
        /// Notes:         Nearest neighbor interpolation: discrete values allowed.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT mode;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// anchor_time_range
        ///
        /// Tuning Level:  must_tune
        /// Description:   Maximum timestamp difference (nanoseconds) between desired and chosen anchor image.
        /// Default Value: 200000000
        /// Range:         [0, 4294967295]
        /// Bit Depth:     32u
        /// Conversion:    No Conversion needed
        /// Notes:         Linear interpolation.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT anchor_time_range;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// brightness_tolerance
        ///
        /// Tuning Level:  must_tune
        /// Description:   Maximum difference in brightness for which the images are expected to be blended. Possible 256 gray
        ///                levels.
        /// Default Value: 3
        /// Range:         [0, 256]
        /// Bit Depth:     9u
        /// Conversion:    No Conversion needed
        /// Notes:         Linear interpolation.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT brightness_tolerance;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// remove_expected_bad_images
        ///
        /// Tuning Level:  must_tune
        /// Description:   Whether to remove images which will not be blended from the processing list.
        /// Default Value: 0
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Linear interpolation.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT remove_expected_bad_images;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// min_histogram_bin
        ///
        /// Tuning Level:  must_tune
        /// Description:   Minimal histogram bin index; lower bins are ignored.
        /// Default Value: 0
        /// Range:         [0, 255]
        /// Bit Depth:     8u
        /// Conversion:    No Conversion needed
        /// Notes:         Linear interpolation.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT min_histogram_bin;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// max_histogram_bin
        ///
        /// Tuning Level:  must_tune
        /// Description:   Maximal histogram bin index; higher bins are ignored.
        /// Default Value: 255
        /// Range:         [0, 255]
        /// Bit Depth:     8u
        /// Conversion:    No Conversion needed
        /// Notes:         Linear interpolation.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT max_histogram_bin;
    } anchor_picking;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_mf10_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_mf10_aec_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// aec_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    globalelements::trigger_pt_type_aec aec_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// mf10_rgn_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    mf10_rgn_dataType   mf10_rgn_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_mf10_hdr_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_mf10_hdr_aec_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// hdr_aec_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type_aec_hdr hdr_aec_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// hdr_aec_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct hdr_aec_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_mf10_aec_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                 mod_mf10_aec_dataCount;
        UINT32                 mod_mf10_aec_dataID;
        mod_mf10_aec_dataType* mod_mf10_aec_data;
    } hdr_aec_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_mf10_drc_gain_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_mf10_drc_gain_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// drc_gain_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type drc_gain_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// drc_gain_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct drc_gain_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_mf10_hdr_aec_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                     mod_mf10_hdr_aec_dataCount;
        UINT32                     mod_mf10_hdr_aec_dataID;
        mod_mf10_hdr_aec_dataType* mod_mf10_hdr_aec_data;
    } drc_gain_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_mf10_lens_zoom_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_mf10_lens_zoom_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// lens_zoom_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type lens_zoom_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// lens_zoom_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct lens_zoom_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_mf10_drc_gain_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                      mod_mf10_drc_gain_dataCount;
        UINT32                      mod_mf10_drc_gain_dataID;
        mod_mf10_drc_gain_dataType* mod_mf10_drc_gain_data;
    } lens_zoom_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_mf10_coreType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_mf10_coreType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// mod_mf10_lens_zoom_data - Array
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                       mod_mf10_lens_zoom_dataCount;
    UINT32                       mod_mf10_lens_zoom_dataID;
    mod_mf10_lens_zoom_dataType* mod_mf10_lens_zoom_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_mf10Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_mf10Type
{
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Binary file symbol table entry ID
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32 SymbolTableID;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// enable_section
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct enable_sectionStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;
        globalelements::enable_flag_type enable_mfnr;
    } enable_section;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// module_version
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct module_versionStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;
        INT32 major_revision;
        INT32 minor_revision;
        INT32 incr_revision;
    } module_version;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// control_variables
    ///
    /// Default Value: control_lens_zoom, control_drc_gain, control_aec_exp_sensitivity_ratio, control_gain
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct control_variablesStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// control_var_type - Array
        /// Default Value: control_lens_zoom, control_drc_gain, control_aec_exp_sensitivity_ratio, control_gain
        /// Length:        4
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        enum class control_var_typeEnum
        {
            control_lens_zoom                 = 0,
            control_drc_gain                  = 1,
            control_exp_time_ratio            = 2,
            control_aec_exp_sensitivity_ratio = 3,
            control_lux_idx                   = 4,
            control_gain                      = 5
        } control_var_type[4];
    } control_variables;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// control_method
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct control_methodStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// aec_exp_control
        /// Default Value: control_gain
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ispglobalelements::tuning_control_aec_type     aec_exp_control;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// aec_hdr_control
        /// Default Value: control_aec_exp_sensitivity_ratio
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ispglobalelements::tuning_control_aec_hdr_type aec_hdr_control;
    } control_method;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// dynamic_enable_triggers
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct dynamic_enable_triggersStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// enable_mfnr
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        struct enable_mfnrStruct
        {
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// Binary file symbol table entry ID
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            UINT32 SymbolTableID;

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// enable
            ///
            /// Tuning Level:  must_tune
            /// Description:   Enable Multi-Frame Noise Reduction.
            /// Default Value: 0
            /// Range:         [0, 1]
            /// Bit Depth:     1u
            /// Notes:         none
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            globalelements::enable_flag_type        enable;

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// hyst_control_var
            ///
            /// Tuning Level:  must_tune
            /// Description:   Enable Multi-Frame Noise Reduction.
            /// Default Value: control_gain
            /// Range:         [0, 1]
            /// Bit Depth:     1u
            /// Length:        0
            /// Notes:         none
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            ispglobalelements::control_var_type        hyst_control_var;

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// hyst_mode
            /// Default Value: UPWARD
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            ispglobalelements::hyst_direction          hyst_mode;

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// hyst_trigger
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            ispglobalelements::trigger_pt_couplet_type hyst_trigger;
        } enable_mfnr;
    } dynamic_enable_triggers;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// chromatix_mf10_core
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_mf10_coreType chromatix_mf10_core;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_mf10TypeClass
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class chromatix_mf10TypeClass : public ParameterModule, public chromatix_mf10Type
{
public:
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Version
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static const UINT16 MAJOR = 1;
    static const UINT16 MINOR = 0;
    static const UINT32 PATCH = 1;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Default Constructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_mf10TypeClass(
        const CHAR* name);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Constructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_mf10TypeClass(
        const CHAR* name,
        UINT32 modeId,
        UINT16 mode,
        UINT16 subMode,
        UINT32 group);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Destructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual ~chromatix_mf10TypeClass();

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// GetName
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static const CHAR* GetName(
        const CHAR* type);


    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mf10_rgn_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmf10_rgn_dataType(
        ParameterFileSymbolTableEntry* entry,
        mf10_rgn_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mf10_rgn_dataType_topStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmf10_rgn_dataType_topStruct(
        ParameterFileSymbolTableEntry* entry,
        mf10_rgn_dataType::topStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mf10_rgn_dataType_anchor_pickingStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmf10_rgn_dataType_anchor_pickingStruct(
        ParameterFileSymbolTableEntry* entry,
        mf10_rgn_dataType::anchor_pickingStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_mf10_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_mf10_aec_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_mf10_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_mf10_hdr_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_mf10_hdr_aec_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_mf10_hdr_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_mf10_hdr_aec_dataType_hdr_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_mf10_hdr_aec_dataType_hdr_aec_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_mf10_hdr_aec_dataType::hdr_aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_mf10_drc_gain_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_mf10_drc_gain_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_mf10_drc_gain_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_mf10_drc_gain_dataType_drc_gain_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_mf10_drc_gain_dataType_drc_gain_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_mf10_drc_gain_dataType::drc_gain_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_mf10_lens_zoom_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_mf10_lens_zoom_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_mf10_lens_zoom_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_mf10_lens_zoom_dataType_lens_zoom_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_mf10_lens_zoom_dataType_lens_zoom_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_mf10_lens_zoom_dataType::lens_zoom_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_mf10_coreType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_mf10_coreType(
        ParameterFileSymbolTableEntry* entry,
        chromatix_mf10_coreType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_mf10Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_mf10Type(
        ParameterFileSymbolTableEntry* entry,
        chromatix_mf10Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load enable_sectionStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadenable_sectionStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_mf10Type::enable_sectionStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load module_versionStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmodule_versionStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_mf10Type::module_versionStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load control_variablesStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadcontrol_variablesStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_mf10Type::control_variablesStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load control_methodStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadcontrol_methodStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_mf10Type::control_methodStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load dynamic_enable_triggersStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loaddynamic_enable_triggersStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_mf10Type::dynamic_enable_triggersStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load dynamic_enable_triggersStruct_enable_mfnrStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loaddynamic_enable_triggersStruct_enable_mfnrStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_mf10Type::dynamic_enable_triggersStruct::enable_mfnrStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_mf10_hdr_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_mf10_hdr_aec_dataType(
        mod_mf10_hdr_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_mf10_hdr_aec_dataType_hdr_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_mf10_hdr_aec_dataType_hdr_aec_dataStruct(
        mod_mf10_hdr_aec_dataType::hdr_aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_mf10_drc_gain_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_mf10_drc_gain_dataType(
        mod_mf10_drc_gain_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_mf10_drc_gain_dataType_drc_gain_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_mf10_drc_gain_dataType_drc_gain_dataStruct(
        mod_mf10_drc_gain_dataType::drc_gain_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_mf10_lens_zoom_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_mf10_lens_zoom_dataType(
        mod_mf10_lens_zoom_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_mf10_lens_zoom_dataType_lens_zoom_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_mf10_lens_zoom_dataType_lens_zoom_dataStruct(
        mod_mf10_lens_zoom_dataType::lens_zoom_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload chromatix_mf10_coreType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadchromatix_mf10_coreType(
        chromatix_mf10_coreType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload chromatix_mf10Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadchromatix_mf10Type(
        chromatix_mf10Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Parse symbol table entry, and return a new object
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual ParameterModule* Parse(
        ParameterSetManager* manager,
        ParameterFileSymbolTableEntry* entry) const;

}; // End class chromatix_mf10TypeClass

MF_1_0_0_NAMESPACE_END
#endif // MF_1_0_0_H

